Bridge for implementing a converged network protocol to facilitate communication between different communication protocol networks

ABSTRACT

Provided are a computer program product, system, and method for a bridge for implementing a converged network protocol to facilitate communication between different communication protocol networks. A first adaptor implements a first communication protocol and a second adaptor implementing a converged network protocol, wherein the converged network protocol facilitates communication of packets encoded with a second communication protocol with a third communication protocol network. Parameters are configured in a memory for communication between the first adaptor and the second adaptor in the converged network protocol to indicate to the second adaptor that the converged network protocol is supported, wherein the first adaptor does not support the converged network protocol. A packet is received at the first adaptor encoded in the second communication protocol directed to the third communication protocol network. The packet is forwarded to the second adaptor to forward to the third communication protocol network. A command is received at the second adaptor, directed to the first adaptor, to implement a function in the converged network protocol for communication between the first and second adaptors. Operations are performed to implement the function using the parameters in the memory to support transmission of packets between the first and the second adaptors.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a computer program product, system, andmethod for a bridge for implementing a converged network protocol tofacilitate communication between different communication protocolnetworks.

2. Description of the Related Art

Fibre Chanel over Ethernet (FCoE) is a protocol standard thatencapsulates Fibre Channel (FC) frames in Ethernet frames to allow anEthernet network to communication withy low latency, high performancenetworks, such as Fibre Channel. FCoE requires extensions orenhancements to the Ethernet protocol. The enhanced functions providedare referred to as Data Center Bridging (DCB) and Converged EnhancedEthernet (CEE). A FCoE fabric is built with switches and adaptors thatsupport the CEE and DCB protocols. An FCoE fabric includes a CEE/DCBswitch that has ports for Fibre Channel connections and ports to connectto CEE ports supporting the enhanced CEE/DCB functions. EnhancedEthernet ports are implemented in a Converged Network Adaptors (CNA) andthe switches for interfacing between the FCoE fabric and Fibre Channelnetwork are also known as Fibre Channel Forwarders (FCF). The FCoEfabric, also referred to as a Data Center Fabric, interacts with a realFibre Channel fabric, and FCoE supports advanced Fibre Channel features.

In FCoE, frames from Fibre Channel packets are encapsulated into anEthernet frame by a logical end point (LEP) which is a translatorbetween the Ethernet and Fibre Channel protocols. The CNA adaptors, FCoEswitches, and FCFs comprise LEPs. Further, software can be provided toperform the LEP operations on a server.

However, to integrate Ethernet networks with FCoE switches, the serversand hosts in the Ethernet network must have adaptors that support theCEE protocol, such as CNA adaptors. Replacing the relatively inexpensivelegacy Ethernet adaptors, i.e., those supporting IEEE 802.11, withadaptors hat support FCoE can be expensive.

There is a need in the art for improved techniques for integrating alegacy Ethernet network with a FCoE network to allow losslesscommunication with a Fibre Chanel fabric.

SUMMARY

Provided are a computer program product, system, and method for a bridgefor implementing a converged network protocol to facilitatecommunication between different communication protocol networks. A firstadaptor implements a first communication protocol and a second adaptorimplementing a converged network protocol, wherein the converged networkprotocol facilitates communication of packets encoded with a secondcommunication protocol with a third communication protocol network.Parameters are configured in a memory for communication between thefirst adaptor and the second adaptor in the converged network protocolto indicate to the second adaptor that the converged network protocol issupported, wherein the first adaptor does not support the convergednetwork protocol. A packet is received at the first adaptor encoded inthe second communication protocol directed to the third communicationprotocol network. The packet is forwarded to the second adaptor toforward to the third communication protocol network. A command isreceived at the second adaptor, directed to the first adaptor, toimplement a function in the converged network protocol for communicationbetween the first and second adaptors. Operations are performed toimplement the function using the parameters in the memory to supporttransmission of packets between the first and the second adaptors.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an embodiment of a network computing environment.

FIG. 2 illustrates an embodiment of an Ethernet frame encapsulating FCoEand Fibre Channel frames in a manner known in the prior art.

FIG. 3 illustrates an embodiment of a host.

FIG. 4 illustrates an embodiment of operations to establish a connectionbetween a first adaptor and second adaptor.

FIG. 5 illustrates an embodiment of operations to process a pauseinstruction received at the second adaptor.

FIG. 6 illustrates an embodiment of operations to process a pauseinstruction received at the first adaptor.

FIG. 7 illustrates an embodiment of operations to process a receivedpacket to manage class bandwidth allocations.

DETAILED DESCRIPTION

FIG. 1 illustrates an embodiment of a network computing environment. Abridge 2 provides communication between hosts 4 a, 4 b, 4 c in a firstcommunication protocol network 6, such as legacy Ethernet, exchangingpackets in a second communication protocol, such as Fibre Channel overEthernet (FCoE) with hosts 8 a, 8 b, 8 c, operating in a thirdcommunication protocol network 10, such as a Storage Area Network (SAN)or

Fibre Channel network. The hosts 4 a, 4 b, 4 c include adaptors havingports that communicate using the first communication protocol (e.g.,Ethernet) and the hosts 8 a, 8 b, 8 c include adaptors that communicateusing the third communication protocol (e.g., Fibre Channel). The bridge2 implements a converged network protocol to provide a converged network12, such as a CEE/DCB network, that interfaces between the firstcommunication protocol network 6 and the third communication protocolnetwork 10. Packets transmitted from the hosts adaptors may be encodedwith a second communication protocol, e.g., FCoE, by secondcommunication protocol software in the hosts. The bridge 2 forwardspackets via a second adaptor 30 a, 30 b, 30 c to a port on a switch 14,such as a Fibre Channel Forwarder (FCF), that decapsulates the payloadfrom the packet for transmission in the third communication protocol(e.g., Fibre Channel) to one of the hosts 8 a, 8 b, 8 c in the thirdcommunication protocol network 10. In certain implementations, thebridge 2 provides for lossless transmission of packets from the firstcommunication protocol network 6, which does not support losslesstransmission, to the third communication protocol network 10, which doessupport lossless transmission. The switch 14 includes adaptors tosupport connections with hosts 8 a, 8 b, 8 c in the third communicationprotocol network, and separate adaptors to support communication withthe converged network 12, including the bridge 2 in the network 12. Inthis way, the bridge allows hosts 4 a, 4 b, 4 c to maintain their legacyadaptors in the first communication protocol, without upgrading, tocommunicate with systems 8 a, 8 b, 8 c supporting only the thirdcommunication protocol (e.g., Fibre Channel). Although the host adaptors4 a, 4 b, 4 c may only support the first communication protocol, thehosts 4 a, 4 b, 4 c may include software capable of coding packets withsecond communication protocol information (e.g., FCoE), encapsulatedinto the first communication protocol packet.

The bridge includes a central processing unit (CPU) 20, such as one ormore processors, a memory 22 to store parameters and other data, a firstcommunication protocol chipset 24 to support communication usingadaptors 26 a, 26 b, 26 c with hosts 4 a, 4 b, 4 c using the firstcommunication protocol and a converged network protocol chipset 28 tosupport communication using adaptors 30 a, 30 b, 30 c with one or moreswitches 14 using the second communication protocol. The adaptors 26 a,26 b, 26 c and 30 a, 30 b, 30 c may each include one or more ports. Abus 32, comprising one or more bus interfaces, provides communicationamong the components 20, 22, 24, 26 a, 26 b, 26 c, 28, and 30 a, 30 b,30 c.

The CPU 20 executes bridge code 34, which may be stored in anon-volatile storage in the bridge 2, to perform packet transferoperations between the adaptors 26 a, 26 b, 26 c, 30 a, 30 b, 30 c.Further, the CPU 20 may store in memory 22 parameters 36 for the secondcommunication protocol to use to communicate via the adaptors 30 a, 30b, 30 c to the switch 14.

Although FIG. 1 shows chipsets 24 and 28 implementing the firstcommunication protocol and converged network protocol, the functions ofthese protocols may be implemented in program instructions in the bridgecode 34 executed by the CPU 20 to perform first communication protocoland converged network protocol related operations. Alternatively, someor all of the functions of the bridge code 34 may be implemented inhardware logic in an integrated circuit hardware component.

Although three of components 4 a, 4 b, 4 c, 8 a, 8 b, 8 c, 26 a, 26 b,26 c, 30 a, 30 b, 30 c, are shown, there may be any number of thesecomponents, and there may be a same or different number of the differentcomponents. Further, although the adaptors 26 a, 26 b, 26 c are shown asconnected to hosts 4 a, 4 b, 4 c they may also be connected to switches,further bridges, repeaters or other components before they are receivedat the hosts 4 a, 4 b, 4 c. Although the adaptors 30 a, 30 b, 30 c areshown as connected to a switch 14, they may also be connected directlyto hosts 8 a, 8 b, 8 c or other components, forwarders, repeaters, otherswitches, etc. Further, although in certain embodiments, the firstcommunication protocol comprises legacy Ethernet, the secondcommunication protocol comprises FCoE, the converged network protocolcomprises CEE/DCB, and the third communication protocol comprises FibreChannel, the first, second, third, and converged network communicationprotocols may comprise different communication protocols, such that theconverged network protocol facilitates transmission of packets between afirst communication protocol network and a third communication protocolnetwork.

FIG. 2 illustrates an embodiment, as known in the prior art, of FCoEencapsulation of a Fibre Channel payload. An Ethernet frame 50 has anEthernet header 52 of Ethernet header information and encapsulates anFCoE frame 54 that has an FCoE header 56 and a Fibre Channel frame 58having a Fibre Channel header 60 and a Fibre Channel payload 62. Thebridge 2 may receive an Ethernet packet 50 encpasulated with FCoE andFibre Channel information at the second adaptors 30 a, 30 b, 30 c andforward to the first adaptors 30 a, 30 b, 30 c.

FIG. 3 illustrates an embodiment of a host 4, such as hosts 4 a, 4 b,and 4 c, including one or more processors 70, a memory 72 in whichsecond communication protocol software 74 is loaded for execution by theprocessor 70, and a first communication protocol adaptor 76, e.g.,Ethernet adaptor. In one embodiment, the second communication protocolsoftware 74 provides a software implementation of a FCoE logical endpoint (LEP) that encapsulates FCoE frame 54 information into theEthernet frame 50. Further, the second communication protocol software74 can access and package the payload 62 into the FCoE frame 54 withinthe Ethernet frame 50 for use ultimately by the switch 14, which canaccess the FCoE frame 54 to extract the payload 62 to provide to theFibre Channel network 10. The first communication protocol adaptor 76,such as a legacy Ethernet adaptor, can transmit that FCoE frame 50 tothe bridge 0, although the adaptor 76 does not include FCoE (secondcommunication protocol) functionality to utilize the FCoE frame 54information.

In certain embodiments, the second communication protocol software 74does not include the capability to handle converged network protocoloperations (CEE/DCB) that are needed to support convergence andinteroperability with the third communication protocol network 10, e.g.,Fibre Channel. For instance, in one embodiment, the converged networkprotocols not supported by the second (FCoE) communication protocolsoftware 74 may comprise CEE/DCB protocols expected by the switch 14,such as priority based flow control, as described in Institute ofElectrical and Electronics Engineers (IEEE) 802.1 Qbb, EnhancedTransmission Selection, as described in IEEE 802.1 Qaz, CongestionNotification as described in IEEE 802.1 Qau, and Data Center BridgingExchange (DCBX). Priority-based Flow Control (PFC) provides a link levelflow control mechanism that can be controlled independently for eachClass of Service (CoS) to ensure zero loss under congestion in DCBnetworks. Enhanced Transmission Selection (ETS) provides a commonmanagement framework for assignment of bandwidth to CoS-based trafficclasses. Congestion Notification provides end-to-end congestionmanagement for protocols that are capable of transmission rate limitingto avoid frame loss to supplement protocols such as Ethernet that dohave native congestion management. Congestion Notification provides moretimely reaction to network congestion. Data Center Bridging CapabilitiesExchange Protocol (DCBX) is a discovery and capability exchange protocolthat is used for conveying capabilities and configuration of the abovefeatures between neighbors to ensure consistent configuration across thenetwork. The bridge 2 includes the converged network protocol chipset 28to support the converged network protocols not supported in the hosts 4a, 4 b, 4 c that are required for communication with the switch 14 andthe third communication protocol network 10. Thus, the bridge 2 needs tointerface between those converged network protocols required by theswitch 14 that are not supported by the components in the hosts 4 a, 4b, 4 c, such as the second communication protocol (FCoE) software 74 andthe first communication protocol (Ethernet) adaptor 76.

FIG. 4 illustrates an embodiment of operations performed by the bridge 2components, including the CPU 20 executing the bridge code 34 andchipsets 24 and 28. The bridge 2 initiates (at block 100) operations toestablish connection between a first adaptor 26 a, 26 b or 26 c (e.g.,legacy Ethernet) and second adaptor 30 a, 30 b or 30 c (e.g., enhancedEthernet). The adaptors 26 a, 26 b, 26 c provide connections to systems4 a, 4 b, 4 c having first communication protocol adaptors and theadaptors 30 a, 30 b, and 30 c provide connections to systems 8 a, 8 b, 8c having third communication protocol adaptors via a switch 14supporting the third communication protocol. The bridge 2 would utilizethe converged network protocol chipset 28 to perform handshaking andinitialization operations with the switch 14. The bridge 2 thentransfers (at block 104) packets between first 26 a, 26 b or 26 c andsecond 30 a, 30 b or 30 c adaptors to transfer between hosts 4 a, 4 b, 4c in the first communication protocol network 6 and hosts 8 a, 8 b, 8 cin the third communication protocol network 10 via the switch 14. Incertain embodiments, the bridge 2 does not modify the packets, which areencoded in the second communication protocol, e.g., FCoE, which can beprocessed by the switch 14 and the second communication protocolsoftware (FCoE) 74 in the hosts 4 a, 4 b, 4 c. The bridge receives (atblock 106) a packet having a function in the converged network protocolfrom the second adaptor 30 a, 30 b or 30 c, directed to the firstadaptor 26 a, 26 b or 26 c. This converged network protocol function maynot be supported in the second communication protocol software 74. Thebridge 2 performs (at block 108) operations to implement the functionusing the parameters 36 in the memory 22 to support transmission ofpackets in the converged network communication protocol, e.g., CEE/DCB.Further, the bridge 2 may determine (at block 110) whether the functionor command from the second adaptor 30 a, 30 b or 30 c corresponds to asecond function in the first communication protocol. If so, the bridge 2determines (at block 112) a second function in the first communicationprotocol and parameters 36 to use with the function to implement thefunction in the converged network protocol from the second adaptor 30 a,30 b or 30 c. The bridge 2 transmits (at block 114) the second function,in the first communication protocol, to the first adaptor 26 a, 26 b or26 c to forward to the target host 4 a, 4 b or 4 c. If (from the nobranch of block 110) the function from the second adaptor 30 a, 30 b or30 c does not correspond to a second function in the first communicationprotocol or after transmitting the second function to the first adaptor26 a, 26 b or 26 c (from block 114), control ends (at block 116)

For instance, the configuration parameters for the converged networkprotocol maintained in the memory 22 may indicate classes of packetsrecognized by the second adaptor 30 a, 30 b or 30 c and the firstfunction may comprises a pause for a selected one of the classes ofpackets from the first adaptor in the converged network protocol. Insuch case, the bridge 2 may send a pause instruction in the firstcommunication protocol to the first adaptor 26 a, 26 b or 26 c to causethe first adaptor 26 a, 26 b or 26 c or hosts 4 a, 4 b or 4 c to pausethe sending of all packets from the connected host 4 a, 4 b or 4 c ,i.e., provide implementation of the converged network protocol pausefunction. The pause instruction in the first communication protocol maynot support pausing for a selected class of packets, and may insteadpause for packets regardless of a classification indicated according tothe converged network protocol.

FIG. 5 illustrates an embodiment of operations performed by the bridge 2to process a pause command in the converged network protocol receivedvia one adaptor 30 a, 30 b or 30 c from the switch 14 or othercomponent. Upon receiving (at block 200) at the second adaptor 30 a, 30b or 30 c a pause for a selected class of packets in the convergednetwork protocol, such as a priority based flow control pause command inthe DCB protocol, the bridge 22 initiates (at block 202) a pausehandling for the selected class. Upon receiving (at block 204) packetsfrom the first adaptor 26 a, 26 b or 26 c while the pause is initiated,the bridge 2 determines (at block 206) whether the received packets areof the selected class. This may be determined by considering informationin the header or fields of the first communication protocol packet, thesource or target of the message, etc. If (at block 206) the receivedpacket is of the selected class, then the bridge 2 delays (at block 208)the transmission of the received packets to the second adaptor 30 a, 30b or 30 c. If (at block 206) the received packets are not categorized inthe selected class for the pause, then the received packets areforwarded (at block 210) to the second adaptor 30 a, 30 b or 30 c toforward to the switch 14 and, eventually, third communication protocolnetwork 10.

FIG. 6 illustrates an embodiment of operations performed by the bridge 2to process a pause command in the first communication protocol receivedvia the first adaptor 26 a, 26 b or 26 c. Upon receiving (at block 220)from a first adaptor 26 a, 26 b, 26 c a pause in the first communicationprotocol initiated from a host 4 a, 4 b or 4 c, the bridge 2 sends (atblock 222) at least one pause related instruction to the second adaptor30 a, 30 b or 30 c in the converged network protocol to pause sendingall classes of packets configured for communication with the secondadaptor 30 a, 30 b or 30 c, such as to pause packets being forwarded toa host 8 a, 8 b, 8 c in the third communication protocol (e.g., FibreChannel) network 10.

FIG. 7 illustrates an embodiment of operations performed by the bridge 2to manage bandwidth for classes of packets according to the convergednetwork protocol (e.g., DCB). The information on the bandwidth for thedifferent classes of packets would have been communicated via the secondadaptor 30 a, 30 b or 30 c from the switch 14. Upon receiving (at block260) a packet from the first adaptor 26 a, 26 b or 26 c in the firstcommunication protocol, the bridge 2 processes (at block 262)information on bandwidth allocated to the different classes of packetsand bandwidth used by each class of packets, which information may bestored as parameters 36 in the memory 22. The class of the packet isdetermined (at block 264), which may be determined by inspecting fieldsin the received packet, such as the FCoE header 56. The bridge 2 thendetermines (at block 266) whether transmitting the packet would causethe bandwidth used by the determined class to exceed an allocatedbandwidth for that class. This requires that the bridge 2 maintain inmemory 22 the current allocated bandwidth for each class and maximumallowed bandwidth for each class. If (at block 266) transmitting thepacket would not cause the bandwidth allocated to the class of thepacket to exceed its allocated maximum bandwidth, then the bridge 2transmits (at block 268) the packet via the second adaptor 30 a, 30 b or30 c to the switch 14 and third communication protocol network 10. Thebandwidth used for that class is then incremented (at block 370) by thesize of the packet transferred. Otherwise, if (at block 266)transmitting the packet would cause the bandwidth for the class to beexceeded, then the bridge 2 queues (at block 272) the received packetand waits for the bandwidth of the class to decrease in response toanother packet for the class completing transmission, and then returnsto block 266 to determine whether to transmit the queued packet.

Certain operations between the switch 14 and the hosts 4 a, 4 b, 4 c maybe handled by the second communication protocol software 72 in the hosts4 a, 4 b, 4 c. For instance, the bridge 2 may forward a keep alivepacket in the second communication protocol received via the secondadaptor 30 a, 30 b or 30 c to the first adaptor 26 a, 26 b or 26 c. Thesecond communication protocol software 72 may then process the keepalive request in the FCoE frame 54 and then generate a reply Ethernetframe 50 having a keep alive response in the second communicationprotocol, e.g., in the FCoE frame 54, to return to the switch 14 via thebridge 2.

Described embodiments provide a bridge having adaptors to communicatewith a first communication protocol, such as legacy Ethernet, and havingadaptors to communicate using a converged network protocol (e.g.,CEE/DCB) that is used to facilitate transfer of packets to a thirdcommunication protocol network. In the described embodiments, hosts 4 a,4 b, 4 c in the first communication protocol network 6 can participatein networks providing the converged network protocol without having tohave their network adaptors upgraded because the bridge 2 facilitatescommunication between the protocols.

Additional Embodiment Details

The described operations may be implemented as a method, apparatus orcomputer program product using standard programming and/or engineeringtechniques to produce software, firmware, hardware, or any combinationthereof. Accordingly, aspects of the embodiments may take the form of anentirely hardware embodiment, an entirely software embodiment (includingfirmware, resident software, micro-code, etc.) or an embodimentcombining software and hardware aspects that may all generally bereferred to herein as a “circuit,” “module” or “system.” Furthermore,aspects of the embodiments may take the form of a computer programproduct embodied in one or more computer readable medium(s) havingcomputer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain, or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present invention are described below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

In certain embodiments, the system of FIG. 1 may be implemented as acloud component part in a cloud computing environment. In the cloudcomputing environment, the systems architecture of the hardware andsoftware components involved in the delivery of cloud computing maycomprise a plurality of cloud components communicating with each otherover a network, such as the Internet. For example, in certainembodiments, the bridge system of FIG. 1 may provide clients, and otherservers and software and/or hardware components in a networked cloud ofthe first and third communication protocol networks with secondcommunication protocol network functions.

The terms “an embodiment”, “embodiment”, “embodiments”, “theembodiment”, “the embodiments”, “one or more embodiments”, “someembodiments”, and “one embodiment” mean “one or more (but not all)embodiments of the present invention(s)” unless expressly specifiedotherwise.

The terms “including”, “comprising”, “having” and variations thereofmean “including but not limited to”, unless expressly specifiedotherwise.

The enumerated listing of items does not imply that any or all of theitems are mutually exclusive, unless expressly specified otherwise.

The terms “a”, “an” and “the” mean “one or more”, unless expresslyspecified otherwise.

Devices that are in communication with each other need not be incontinuous communication with each other, unless expressly specifiedotherwise. In addition, devices that are in communication with eachother may communicate directly or indirectly through one or moreintermediaries.

A description of an embodiment with several components in communicationwith each other does not imply that all such components are required. Onthe contrary a variety of optional components are described toillustrate the wide variety of possible embodiments of the presentinvention.

Further, although process steps, method steps, algorithms or the likemay be described in a sequential order, such processes, methods andalgorithms may be configured to work in alternate orders. In otherwords, any sequence or order of steps that may be described does notnecessarily indicate a requirement that the steps be performed in thatorder. The steps of processes described herein may be performed in anyorder practical. Further, some steps may be performed simultaneously.

When a single device or article is described herein, it will be readilyapparent that more than one device/article (whether or not theycooperate) may be used in place of a single device/article. Similarly,where more than one device or article is described herein (whether ornot they cooperate), it will be readily apparent that a singledevice/article may be used in place of the more than one device orarticle or a different number of devices/articles may be used instead ofthe shown number of devices or programs. The functionality and/or thefeatures of a device may be alternatively embodied by one or more otherdevices which are not explicitly described as having suchfunctionality/features. Thus, other embodiments of the present inventionneed not include the device itself.

The illustrated operations of FIGS. 4-7 show certain events occurring ina certain order. In alternative embodiments, certain operations may beperformed in a different order, modified or removed. Moreover, steps maybe added to the above described logic and still conform to the describedembodiments. Further, operations described herein may occur sequentiallyor certain operations may be processed in parallel. Yet further,operations may be performed by a single processing unit or bydistributed processing units.

The foregoing description of various embodiments of the invention hasbeen presented for the purposes of illustration and description. It isnot intended to be exhaustive or to limit the invention to the preciseform disclosed. Many modifications and variations are possible in lightof the above teaching. It is intended that the scope of the invention belimited not by this detailed description, but rather by the claimsappended hereto. The above specification, examples and data provide acomplete description of the manufacture and use of the composition ofthe invention. Since many embodiments of the invention can be madewithout departing from the spirit and scope of the invention, theinvention resides in the claims hereinafter appended.

1. A computer program product for managing communications among a firstadaptor implementing a first communication protocol, a second adaptorimplementing a converged network protocol, wherein the converged networkprotocol facilitates communication of packets encoded with a secondcommunication protocol with a third communication protocol network, thecomputer program product comprising a computer readable storage mediumhaving computer readable program code embodied therein that executes tocommunicate with the first and second adaptors and to performoperations, the operations comprising: configuring parameters in amemory for communication between the first adaptor and the secondadaptor in the converged network protocol to indicate to the secondadaptor that the converged network protocol is supported, wherein thefirst adaptor does not support the converged network protocol; receivinga packet at the first adaptor encoded in the second communicationprotocol directed to the third communication protocol network;forwarding the packet to the second adaptor to forward to the thirdcommunication protocol network; receiving a command at the secondadaptor, directed to the first adaptor, to implement a function in theconverged network protocol for communication between the first andsecond adaptors; and performing operations to implement the functionusing the parameters in the memory to support transmission of packetsbetween the first and the second adaptors.
 2. The computer programproduct of claim 1, wherein the first adaptor comprises a legacyEthernet adaptor, wherein the first communication protocol comprises theEthernet protocol, wherein the second adaptor comprises an enhancedEthernet adaptor, the second communication protocol comprises FibreChannel over Ethernet (FCoE), the converged network protocol includesthe Data Center Bridging Exchange protocol that supports losslesstransmission with a Fibre Channel network, and wherein the thirdcommunication protocol network comprises the Fibre Channel network. 3.The computer program product of claim 1, wherein the function comprisesa first function, wherein the function in the converged network protocolis not supported in the first communication protocol and in the firstadaptor, and wherein performing the operations to implement the firstfunction from the second adaptor comprises: determining a secondfunction in the first communication protocol and parameters to use withthe function to implement the function from the second adaptor; andtransmitting the second function to the first adaptor.
 4. The computerprogram product of claim 1, wherein the configuration parametersindicate traffic classes for packets recognized in the converged networkprotocol but not the first communication protocol, wherein the functioncomprises a pause for a selected one of the classes of packets from thefirst adaptor, and wherein performing the operations comprises:receiving packets from the first adaptor; determining whether thereceived packets are of the selected class; delaying the transmission ofthe received packets to the second adaptor in response to determiningthat the packets are of the selected class; and forwarding the receivedpackets to the second adaptor in response to determining that thepackets are not of the selected class.
 5. The computer program productof claim 1, wherein the configuration parameters indicate classes ofpackets recognized in the converged network protocol but not the firstcommunication protocol, wherein the function comprises a pauseinstruction in the converged network protocol for a selected one of theclasses of packets from the first adaptor, and wherein performing theoperations comprising: sending a pause instruction in the firstcommunication protocol to the first adaptor to cause the first adaptorto pause sending all packets.
 6. The computer program product of claim5, wherein the operations further comprise: receiving the pauseinstruction in the first communication protocol from the first adaptorto instruct the second adaptor to stop sending all packets; in responseto the pause instruction, sending at least one instruction to the secondadaptor in the converged network protocol to pause sending all classesof packets configured for communication with the second adaptor.
 7. Thecomputer program product of claim 1, wherein the function comprises akeep alive request from the second adaptor, and wherein the operationsfurther comprise sending the packet including the keep alive request tothe first adaptor, wherein the keep alive request is processed by secondcommunication protocol software in a host in a first communicationprotocol network.
 8. The computer program product of claim 1, whereinthe configuration parameters indicate classes of packets supported inthe converged network protocol, but not the first communicationprotocol, and bandwidth percentages for the different classes ofpackets, wherein the function comprises a bandwidth management function,and wherein the operations to implement the function compriseguaranteeing the bandwidth percentages to the classes of packetsaccording to bandwidth percentages provided for the packets in theconfiguration parameters.
 9. The computer program product of claim 1,wherein the computer product executes to communicate with a plurality offirst type adaptors implementing the first communication protocol toforward packets from the first type adaptors, directed to the thirdcommunication protocol network, to the second adaptor.
 10. A system,comprising: a first adaptor implementing a first communication protocol;a second adaptor implementing a converged network protocol, wherein theconverged network protocol facilitates communication of packets encodedwith a second communication protocol with a third communication protocolnetwork, wherein the first adaptor does not support the convergednetwork protocol; a processor; a memory including code executed by theprocessor to perform operations, the operations comprising: configuringparameters in the memory for communication between the first adaptor andthe second adaptor in the converged network protocol to indicate to thesecond adaptor that the converged network protocol is supported;receiving a packet at the first adaptor encoded in the secondcommunication protocol directed to the third communication protocolnetwork; forwarding the packet to the second adaptor to forward to thethird communication protocol network; receiving a command at the secondadaptor, directed to the first adaptor, to implement a function in theconverged network protocol for communication between the first andsecond adaptors; and performing operations to implement the functionusing the parameters in the memory to support transmission of packetsbetween the first and the second adaptors.
 11. The system of claim 10,wherein the first adaptor comprises a legacy Ethernet adaptor, whereinthe first communication protocol comprises the Ethernet protocol,wherein the second adaptor comprises an enhanced Ethernet adaptor, thesecond communication protocol comprises Fibre Channel over Ethernet(FCoE), the converged network protocol includes the Data Center BridgingExchange protocol that supports lossless transmission with a FibreChannel network, and wherein the third communication protocol networkcomprises the Fibre Channel network.
 12. The system of claim 10, whereinthe function comprises a first function, wherein the function in theconverged network protocol is not supported in the first communicationprotocol and in the first adaptor, and wherein performing the operationsto implement the first function from the second adaptor comprises:determining a second function in the first communication protocol andparameters to use with the function to implement the function from thesecond adaptor; and transmitting the second function to the firstadaptor.
 13. The system of claim 10, wherein the configurationparameters indicate traffic classes for packets recognized in theconverged network protocol but not the first communication protocol,wherein the function comprises a pause for a selected one of the classesof packets from the first adaptor, and wherein performing the operationscomprises: receiving packets from the first adaptor; determining whetherthe received packets are of the selected class; delaying thetransmission of the received packets to the second adaptor in responseto determining that the packets are of the selected class; andforwarding the received packets to the second adaptor in response todetermining that the packets are not of the selected class.
 14. Thesystem of claim 10, wherein the configuration parameters indicateclasses of packets recognized in the converged network protocol but notthe first communication protocol, wherein the function comprises a pauseinstruction in the converged network protocol for a selected one of theclasses of packets from the first adaptor, and wherein performing theoperations comprising: sending a pause instruction in the firstcommunication protocol to the first adaptor to cause the first adaptorto pause sending all packets.
 15. The system of claim 14, wherein theoperations further comprise: receiving the pause instruction in thefirst communication protocol from the first adaptor to instruct thesecond adaptor to stop sending all packets; in response to the pauseinstruction, sending at least one instruction to the second adaptor inthe converged network protocol to pause sending all classes of packetsconfigured for communication with the second adaptor.
 16. The system ofclaim 10, wherein the function comprises a keep alive request from thesecond adaptor, and wherein the operations further comprise sending thepacket including the keep alive request to the first adaptor, whereinthe keep alive request is processed by second communication protocolsoftware in a host in a first communication protocol network.
 17. Thesystem of claim 10, wherein the configuration parameters indicateclasses of packets supported in the converged network protocol, but notthe first communication protocol, and bandwidth percentages for thedifferent classes of packets, wherein the function comprises a bandwidthmanagement function, and wherein the operations to implement thefunction comprise guaranteeing the bandwidth percentages to the classesof packets according to bandwidth percentages provided for the packetsin the configuration parameters.
 18. The system of claim 10, furthercomprising: a plurality of first type adaptors implementing the firstcommunication protocol to forward packets from the first type adaptor,directed to the third communication protocol network, to the secondadaptor.
 19. A computer implemented method, comprising: communicatingwith a first adaptor implementing a first communication protocol and asecond adaptor implementing a converged network protocol, wherein theconverged network protocol facilitates communication of packets encodedwith a second communication protocol with a third communication protocolnetwork; configuring parameters in a memory for communication betweenthe first adaptor and the second adaptor in the converged networkprotocol to indicate to the second adaptor that the converged networkprotocol is supported, wherein the first adaptor does not support theconverged network protocol; receiving a packet at the first adaptorencoded in the second communication protocol directed to the thirdcommunication protocol network; forwarding the packet to the secondadaptor to forward to the third communication protocol network;receiving a command at the second adaptor, directed to the firstadaptor, to implement a function in the converged network protocol forcommunication between the first and second adaptors; and performingoperations to implement the function using the parameters in the memoryto support transmission of packets between the first and the secondadaptors.
 20. The method of claim 19, wherein the first adaptorcomprises a legacy Ethernet adaptor, wherein the first communicationprotocol comprises the Ethernet protocol, wherein the second adaptorcomprises an enhanced Ethernet adaptor, the second communicationprotocol comprises Fibre Channel over Ethernet (FCoE), the convergednetwork protocol includes the Data Center Bridging Exchange protocolthat supports lossless transmission with a Fibre Channel network, andwherein the third communication protocol network comprises the FibreChannel network.
 21. The method of claim 19, wherein the functioncomprises a first function, wherein the function in the convergednetwork protocol is not supported in the first communication protocoland in the first adaptor, and wherein performing the operations toimplement the first function from the second adaptor comprises:determining a second function in the first communication protocol andparameters to use with the function to implement the function from thesecond adaptor; and transmitting the second function to the firstadaptor.
 22. The method of claim 19, wherein the configurationparameters indicate traffic classes for packets recognized in theconverged network protocol but not the first communication protocol,wherein the function comprises a pause for a selected one of the classesof packets from the first adaptor, further comprising: receiving packetsfrom the first adaptor; determining whether the received packets are ofthe selected class; delaying the transmission of the received packets tothe second adaptor in response to determining that the packets are ofthe selected class; and forwarding the received packets to the secondadaptor in response to determining that the packets are not of theselected class.
 23. The method of claim 19, wherein the configurationparameters indicate classes of packets recognized in the convergednetwork protocol but not the first communication protocol, wherein thefunction comprises a pause instruction in the converged network protocolfor a selected one of the classes of packets from the first adaptor, andwherein performing the operations comprising: sending a pauseinstruction in the first communication protocol to the first adaptor tocause the first adaptor to pause sending all packets.
 24. The method ofclaim 23, wherein the operations further comprise: receiving the pauseinstruction in the first communication protocol from the first adaptorto instruct the second adaptor to stop sending all packets; in responseto the pause instruction, sending at least one instruction to the secondadaptor in the converged network protocol to pause sending all classesof packets configured for communication with the second adaptor.
 25. Themethod of claim 19, wherein the function comprises a keep alive requestfrom the second adaptor, and wherein the operations further comprisesending the packet including the keep alive request to the firstadaptor, wherein the keep alive request is processed by secondcommunication protocol software in a host in a first communicationprotocol network.
 26. The method of claim 19, wherein the configurationparameters indicate classes of packets supported in the convergednetwork protocol, but not the first communication protocol, andbandwidth percentages for the different classes of packets, wherein thefunction comprises a bandwidth management function, and wherein theoperations to implement the function comprise guaranteeing the bandwidthpercentages to the classes of packets according to bandwidth percentagesprovided for the packets in the configuration parameters.
 27. A system,comprising: a host; a switch; and a bridge including: a first adaptorimplementing a first communication protocol in communication with thehost; a second adaptor implementing a converged network protocol incommunication with the switch, wherein the converged network protocolfacilitates communication of packets encoded with a second communicationprotocol with a third communication protocol network, wherein the firstadaptor does not support the converged network protocol; a processor; amemory including code executed by the processor to perform operations,the operations comprising: configuring parameters in the memory forcommunication between the first adaptor and the second adaptor in theconverged network protocol to indicate to the second adaptor that theconverged network protocol is supported; receiving a packet at the firstadaptor encoded in the second communication protocol directed to thethird communication protocol network; forwarding the packet to thesecond adaptor to forward to the third communication protocol network;receiving a command at the second adaptor, directed to the firstadaptor, to implement a function in the converged network protocol forcommunication between the first and second adaptors; and performingoperations to implement the function using the parameters in the memoryto support transmission of packets between the first and the secondadaptors.
 28. The system of claim 27, wherein the host includes: a hostadaptor supporting the first communication protocol to communicate withthe first adaptor in the bridge; and second communication protocolsoftware for processing packets encoded with the second communicationprotocol.